Context-based heterogeneous information integration system

ABSTRACT

A method of displaying heterogeneous information includes executing an application program to process one or more activities. Each activity has information nuggets and next step links, and each information nugget is extracted from one or more heterogeneous information sources. Also, each next step link is associated with one or more information nuggets. One of the activities is selected, and an information nugget of the selected activity is displayed in a first region of the graphical user interface. A next step link associated with the displayed information nugget is displayed in a second region of the graphical user interface.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S application Ser. No.10/292,777, now pending, filed on Nov. 12, 2002, which is herebyincorporated by reference in its entirety for all purposes as if fullyset forth herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computer systems and, inparticular, to computer systems for processing information from multiplesources.

2. Related Art

Current Customer Relationship Management (CRM) systems along with othersystems that process and present business data typically allow users tosearch, view and manipulate data from multiple sources havingincompatible formats using a common interface. Typically, these systemsprovide a portal-like front end that present a broad categorization ofthe information available and the user can drill-down on specificinformation the user of interest. XML (extensible markup language) issometimes used to capture information that is not displayed by the frontend, but can be used by a computer program (e.g. a search engine) toanalyze the content of the information displayed by the front end. Asemantic web, for example, has been proposed that would use XML to allowsearch engines to recognize and analyze semantic information embedded onwebpages. Prior art CRM systems, however, are typically based on customprograms tailored to a specific business process. As a result, thesesystems require users to specify in advance how the data extracted fromthe underlying data sources is presented to the user. Furthermore, anychanges to the way the data is presented or to the business processrequire extensive modifications of the underlying programs to beperformed by skilled programmers. As a result, these systems are notwell suited to implementing dynamic business processes that may need tobe modified on a regular basis. It would be desirable to provide asystem that can be dynamically modified in response to changes in theunderlying business processes.

In addition, using these systems, the entire business process must bemodeled in advance and the user must navigate through the same pathevery time an operation is performed. As a result, the navigationoptions available to each user must be defined before the program iswritten. This is particularly undesirable in situations whereinformation is to be presented to the user depending on the contextualsituation of the operation performed by the user. Using current systems,in fact, each situation in which the information is to be presented bythe user must be recognized ahead of time and provided for in theprogram. By contrast, it would be desirable to provide a system thatdynamically routes the user to relevant information depending on thecontextual situation of the user's operation.

SUMMARY OF THE INVENTION

A method of displaying heterogeneous information includes executing anapplication program to process one or more activities. Each activity hasinformation nuggets and next step links, and each information nugget isextracted from one or more heterogeneous information sources. Also, eachnext step link is associated with one or more information nuggets. Oneof the activities is selected, and an information nugget of the selectedactivity is displayed in a first region of the graphical user interface.A next step link associated with the displayed information nugget isdisplayed in a second region of the graphical user interface.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system, in accordance to someembodiments of the invention.

FIG. 2A is a block diagram of a computer program executed by thecomputer system of FIG. 1.

FIG. 2B is a flow diagram describing the operation of the computerprogram of FIG. 2A.

FIG. 3 is a block diagram illustrating programmatic and non-programmaticcomponents of the computer system of FIG. 1, in accordance to someembodiments of the invention.

FIG. 4 is a block diagram of an information object, in accordance withsome embodiments of the invention.

FIG. 5 shows a graphical editor, in accordance to some embodiments ofthe invention.

FIGS. 6A and 6B illustrates composite nuggets displayed by the computerprogram of FIG. 2A, in accordance to some embodiments of the invention.

FIG. 7 illustrates Next Steps in a window displayed by the computerprogram of FIG. 2A, in accordance to some embodiments of the invention.

FIG. 8 illustrates an exemplary activity, in accordance to someembodiments of the invention.

FIG. 9 illustrates a section of a QuickView in a window displayed by thecomputer program of FIG. 2A, in accordance to some embodiments of theinvention.

FIG. 10 illustrates a user interface displayed by the computer programof FIG. 2A on one of the PDAs of FIG. 1.

FIG. 11 illustrates a user interface for specifying semantic typeinformation in a window displayed by the computer program of FIG. 2A, inaccordance to some embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

A computer system 100 for context-based integration of heterogeneousinformation, in accordance to some embodiments of the invention, isshown in FIG. 1. Computer system 100 includes a server computer 110connecting a plurality of data sources 120 n (where n=A, B, C . . . ) toa plurality of client computers 130 n and/or a plurality of PDAs 140 n.Examples of data sources 120 n include databases, files, spreadsheetsand the like. In some embodiments, devices other than client computersand PDAs such as cellular telephones, two-way pagers and the like can beused in place of client computers 130 n or PDAs 140 n in accordance tothe principles of the present invention. A computer program 200 isconfigured to operate on computer system 100. The architecture ofcomputer program 200 is illustrated in FIG. 2A. Computer system 200includes a graphical user interface layer 240, tasks 230 n and aninformation objects and helpers layer 215. Computer program 200interfaces with a plurality of heterogeneous information sources 210 nthat can reside on one or more data sources 120 n (FIG. 1). Informationobjects 220 n extract data from one or more information sources 120 nand translate the data into a format suitable for processing by tasks230 and graphical user interface layer 240. Helpers 225 n are used totranslate data extracted from data extracted from information sources210 n by information objects 220 n, but do not communicated withinformation sources 210 n directly. Tasks 230 include one or more steps235 n and capture workflows by defining which steps may be executedafter execution of the current step. During execution of a step 235 n,information is retrieved from and presented to a user through graphicaluser interface layer 240. One or more information components are used toretrieve information from information sources 210 n during execution ofa step 235 n based on user specified parameters. At the conclusion ofeach step 235 n, the corresponding task 230 n determines which steps 235n, if any, may be executed next. In addition, unlike in prior artworkflow modeling systems, the workflow is not limited to steps 235 n oftask 230 n. Rather, a semantic type associated with input and outputparameters of each step 235 n is used to determine which tasks areavailable for execution based on the results of the execution of aprevious step 235 n. Thus, a task 230 n is available for execution onlywhen a previous step generates output parameters that have the samesemantic type as the input parameters of the task 230 n to be executed.As a result, after each step 235 n, the user may choose either one ofthe “Next Steps” defined by the current task 230 n or a new taskdynamically determined based on the semantic types generated duringexecution of step 235 n. In some embodiments, new tasks available forexecution are determined based both on semantic types and business rulesused to analyze the semantic types. For instance, a step that generatesan output of semantic type Customer could be analyzed by a business ruleto determine whether there are any open orders for that customer andgenerate a link to an order review task only if there are in factpending orders for that customer.

Finally, graphical user interface layer 240 may comprise severalapplication programs 250 n that leverage underlying tasks 230 n andinformation objects and helper layer 215 to implement businessapplications. Application programs 250 n are thus able to share all ofthe underlying components of computer program 220, greatly simplifyingthe task of developing new application programs 250 n.

The operation of computer program 200 is further illustrated byoperation 260 of FIG. 2B. Initially, a user of computer program 200selects a task (stage 265) through graphical user interface layer 240.The start step of the selected task is then executed (stage 270). Aspart of the execution of the step, information associated with theinformation objects of the step is extracted from information sources210 n (stage 275). The extracted information is then displayed bygraphical user interface layer 240 (stage 280). Links to steps and othertasks to which the user can navigate are then generated and displayed bygraphical user interface layer 240 (stage 285). Stage 290 thendetermines whether the user has selected to navigate to a next step inthe same task, in which case operation 260 proceeds to stage 295 wherethe next step is executed and operation 260 proceeds to stage 275.Otherwise, if another task is selected, operation 260 proceeds to stage270, where the start step of the newly selected task is executed. Stages270-295 are repeated until the user exits computer program 200.

As shown in FIG. 2A, computer program 200 supports two types ofcomponents: programmatic components and high-level components.Information objects 220 n and Helpers 225 n are examples of programmaticcomponents, while tasks 230 n, steps 235 n and applications 250 n areexamples of high-level components. By utilizing both programmatic andnon-programmatic components, the architecture of computer program 200 isable to provide both ease of development of high-level components andthe flexibility of a programmatic interface to the underlyinginformation objects.

FIG. 3 summarizes how various programmatic and high-level components ofcomputer program 200 are implemented, according to some embodiments ofthe invention. In the embodiments described in FIG. 3 and following,Information Components (IC) 320 represent information objects 220 n,Activities 330 and QuickViews 345 represent tasks 230 n, and Nuggets 335represent steps 235 n.

In some embodiments, ICs 320 are programmatic components written in Javaprogramming language 360 using Java Integrated Development Environment(IDE) 365. Nuggets 335, Activities 330 and QuickViews 345 are high-levelcomponents described in metadata 370 using graphical editor 375.Finally, all the information retrieved by a nugget 335 can begraphically represented using a nugget display 350. Nugget displays 350are implemented using Java Server Pages (JSPs) 380 composed using JSPeditor 385.

As discussed above, in the embodiment of FIG. 3, programmatic componentsare built in Java and use Java classes to implements business logic. Inaddition, programmatic components specify input and output parameterclasses and can be registered into metadata 370. As a result,programmatic components can be used to build high level,non-programmatic components (e.g. nuggets 335). By registeringprogrammatic components into metadata 370, in fact, high-level objectscan be connected to programmatic components using graphical editor 500of FIG. 5. (a process described as “wiring”).

ICs 320 provide business logic used to connect to and retrieveinformation from information sources 210 n. Examples include an IC 320that connects to a company's financial system to retrieve financialinformation about an individual or an IC 320 that makes a call acrossthe Internet to retrieve real-time data such as traffic or stock quotedata. ICs enable computer program 200 to connect to information sources210 n and provide a modular way to extend information available tousers. ICs 320 include Java classes and represent encapsulated businesslogic. The Java class for an IC 320 can either have all the businesslogic implemented within it, or it can be a simple proxy to call othersources of information such as a Web Service or an Enterprise Java Bean(EJB).

ICs 320 consist of three Java classes. An IC input parameter class 410encapsulates information available to IC 320 when executing, an IC Javaclass 420 contains the code to connect to and get information from adata source, and an IC output parameter class 430 encapsulatesinformation that is available for display, and to pass to other Nuggets335 (via “Next Steps”) or Activities 330 (via lightbulb links) after IC320 has executed.

IC 320 has an XML descriptor and Java Server Pages (JSP) 380 are used todisplay data from IC 320. IC 320 can be diagrammatically represented asshown in FIG. 4. IC 320 accepts input parameters and indicates when ithas finished executing, that is, when output data is available.

Once IC 320 executes, it stores the results of its execution into anoutput parameter. This output parameter serves multiple purposes: it issent to the front end JSP page 380 and is accessible for display to theend user; certain properties of the output parameter can be marked aswiring properties and can be made available for wiring via Next Steplinks to other steps 235 n. It is also available for lightbulb links toother Activities 330 or QuickViews 345 via lightbulb navigation.

The IC java class that performs the business logic implements anexecute( ) method that takes in an IC parameter and returns an ICparameter that are of the input and output class types defined above. Asimple example of how an execute( ) method could be implemented could befor the execute code to obtain a connection to a database specified,retrieve record sets from this database, iterate through these records,and store the data from each field of these record sets into an outputtable parameter.

To support user navigation through Activities 330 and QuickViews 345,ICs 320 indicate what portions of their output represent semantic types.Semantic types are a mechanism for declaring input/output properties asone of the fundamental types, for example as Customer or Product, thatdetermine which Activities 330 can be linked to. By indicating whatportions of an IC 320 output represent Semantic Types, ICs 320 enablelightbulbs 610 n to appear in an IC display output 620, as illustratedin FIG. 6. By selecting a lightbulb 610 n, a user can navigate tocorresponding Activities 330 and QuickViews 345 that specifiy compatiblesemantic types as input parameters.

Like an IC 320, a helper 225 n consists of three Java classes: a helperinput parameter class encapsulates the information available to helper225 n when executing, a helper Java class contains the “helping” code orthe code that does the work of helper 225 n, and an helper outputparameter encapsulates the result of executing helper 225 n. Like an IC320, a helper also has an XML descriptor that identifies the Javaclasses that are associated with helper 225 n. Unlike ICs 320, however,helpers 225 n do not have a visual display associated with them.

Nuggets 335, Activities 330 and semantic types represent businessnotions that span multiple applications 250 n. Nuggets 335 representrelevant pieces of information from applications 250 n and informationsources 210 n. Examples of nuggets 335 include a rows and column OLAPreport, customer service requests, top sales opportunities, companyfinancials, and company profiles. Nuggets 335 are the basic buildingblocks of Activities 330 and QuickViews 345. Nuggets can be created andedited using graphical editor 500. A nugget 335 is a combination of anIC 320 (with set input parameters) and a JSP for displaying the ICoutput. From a technical viewpoint, a nugget 335 represents a configuredinstance of an IC 320 that is used for display in Activities 330 andQuickViews 345. A nugget 335 that contains multiple nuggets is called a“composite nugget.” Instances of IC s 320 or nuggets 335 are configuredfor display in Activities 330. Configuration information includes inputparameters that instantiate the IC 320. Once nuggets 335 s areconfigured, they are added to Activities 330. Some steps in an Activity330 display one nugget 335 while other steps display multiple nuggets335. Configured nuggets 335 may be used to develop Activities 330without delving into the internal configuration of nuggets 335.

Nugget 335 s can be created using the graphical editor 500 by selectingCreate a New nugget icon 525 from toolbar 530. An empty nugget 335 withinput and output rectangles is then displayed in the design canvas 510.The user can then expand the IC node 515 in component explorer 520,expand ICs 320 to show available ICs 320. An IC 320 can be added tonugget 335, by selecting IC 320 in the component explorer 520 anddragging it on to design canvas 510. Optionally, an input can bespecified for nugget 335 by expanding parameters node 525 and draggingand dropping the relevant parameter on to the input rectangle in thedesign canvas 510. Next a wire is drawn between the nugget 335 input andthe IC 320 input. First, the user double-clicks on the input connectorof nugget 335 displaying available parameters. Next the userdouble-clicks on the input connector of IC 320 displaying availableParameters. The user then clicks on the Create a new wire icon 535. Nextthe user clicks on the desired input parameter of nugget 335 and then onthe desired input parameter of IC 320. If the nugget 335 has multipleparameters, all parameters may be bound by clicking on the top row ofthe input parameter list of nugget 335 and then clicking on the IC 320input parameter of IC 320. Optionally, the output of nugget 335 can bewired to an input of another nugget 335 by drawing a wire from the IC320 output to nugget 335 output. The user may also choose to edit thebinding properties by double clicking on the name of the property forthe wire displaying an Edit wire properties dialog box appears (notshown). The following fields can be edited: a user interaction fieldthat selects either row from table, column from table or item from list;a user interaction field that specifies an interaction required of theuser before the output of IC 320 can be passed to the output of nugget335, and on to the input of a Next Step's nugget 335, before the NextStep can be reached; and a user interaction params field (a “+”separated array of Strings that are passed as a String array argument toa constructor for the User Interaction's Java class). The user can alsoadd a Helper to nugget 335, using a process similar to the one describedabove for creating a nugget 335.

As discussed above, nuggets 335 s are displayed in JavaServer Pages(JSP). JSP allows for clean separation of display logic frombusiness/connector logic. Generally, a single JSP is used to display allnuggets 335 associated with a particular IC 320. Different JSPs can beused to change the display of different nuggets or a single nugget on aper-device basis. In some embodiments, nugget JSPs 380 use JSP tags toget to the various data that is available through a programmatic APIwith an information souce 210 n.

Parameter definition involves declaring a parameter in metadata 370.Each parameter has property definitions. Property definitions aredefinitions for the input and output parameters for ICs 320 and nugget335 s. A nugget input parameter is a metadata-only pseudo-Java parameterthat represents the input properties that an IC 320 expects from theoutside (for example, a Product or a Customer Semantic Type). Apseudo-Java parameter means that the names, properties, and types of theparameter are registered in metadata 370. A nugget output parameter is apseudo-Java parameter that represents the possible output parametersthat a nugget 335 makes available to the outside via different types oflinks. Each nugget output parameter is created as a result of aparameter declaration.

Composite nuggets are multiple nuggets 335 displayed at one step in anActivity 330. For example, presenting a customer's book of business caninvolve the display of several tables and charts. Composite nuggets canbe created via graphical editor 500, using a process similar to the onedescribed above for creating nuggets 335.

Activities 330 enable flexible, guided exploration through availableinformation in computer system 100 and represent answers to questionsthat users would as part of the business process. Just as nuggets 330,helpers 225 n and composite nuggets, Activities 330 can be created andedited using graphical editor 500.

From a technical viewpoint, Activities 330 are collections of nuggets335 and Next Steps links 710, as shown in FIG. 7. Next Steps links 710connect to nuggets 335 inside an Activity 330. Nuggets 335 representinformation pertaining to Activity 330, and Next Steps links 710 allowthe user to navigate between the activity's nuggets. Activities 330 haveconcrete business purposes that often have to do with a subject that isimportant at a particular time. Examples include preparing for a meetingwith a customer and learning more about a product. The first activity,for instance, can have nuggets 335 that present the customer's currentbook of business, outstanding service requests, and relevant companyup-sell recommendations, and a second activity can have nuggets 335 thatpresent product historical sales, known defects, and product collateral.

Activities 330 represent ways of building navigation between nuggets335. These navigations define Next Steps in the front end. Contextualinformation is carried along links in an activity. An Activity 330 has asingle start nugget 335. Start nugget 335 represents the nugget that isfirst displayed as part of the activity. Nuggets 335 represent theinformation that is displayed as part of an activity. Nuggets 335 can besimple or Composite, and at each step in an activity, users will see oneor more nuggets 335 of information.

Wiring between nuggets 335 specifies what information is carried duringnavigation. Wiring is a way to define where the value for a parametercomes from. Wiring can bind an input parameter value to eitherhard-coded values, the input of a composite nugget, the input of anactivity, or the output from the previous nugget (step) in the activity.Next Step links represent navigation within an activity that takes auser from the current nugget to the next nugget in the activity. NextStep links connect a nugget 335 with other nugget 335 s in thatactivity. The links can also link to external applications. However,Next Step links do not link to nuggets outside of the activity.

When a user completes viewing a nugget, the user can navigate to othernuggets in that activity by choosing one or more Next Step links. Inorder for this navigation to take place, however, the user may have toselect some further information that serves as input to the next nugget.

Using graphical editor 500, Next Steps links may drawn from an output ofone nugget 335 to an input of another nugget.

Each Activity 330 has an activity input that serves as an inputparameter for the activity. The activity input can be wired to one ormore nugget inputs in the activity. The activity input is typically thesame input that is required for the start nugget of the activity.Implementers can refer to activity inputs for wiring purposes to anynugget input in the activity. In essence, the activity input representsstate that is global to the activity. This is because Activities 330 areoften centered around something of interest, like a product or a regionor a customer. This item of interest can be wired to all nugget 335 s inthe activity. When automatically calculating lightbulb links 610 n(FIGS. 6A-B), the activity input is considered. Using the CommonActivities menu, users can navigate to the start nugget 335 of anactivity without any previous context. For example, the start nuggetmight be a composite nugget centered around a customer. A customer namecould be the input property to the composite nugget. In this case, theuser would be given a list of customers to select from.

Lightbulb links 610 n are calculated automatically at runtime bymatching IC outputs with activity inputs. For example, if an IC 320outputs Semantic Type A, it will match with all Activities 330 that takein Semantic Type A as an input. Activities 330 can take in both requiredand optional Semantic Type inputs. So, for example, if an activity tookSemantic Type A as a required input parameter and Semantic Type B as anoptional input parameter, it would be matched with all activities 230 nthat output only Semantic Type A as well as activities 230 n that outputboth Semantic Types A and B.

In some embodiments, as discussed above, lightbulb links are calculatedusing both semantic types and business rules, as illustrated in FIGS.6A-B. FIGS. 6A and 6B show detail of a composite nugget with multiplelightbulb links 610 n. Lightbulb links 610 n are calculated using acombination of semantic types and business rules. For example, when thecurrent nugget generates an output of semantic type Customer, a businessrule is used to determine if there are any scheduled sales meetings withthe customer in question. If a meeting is planned, the links displayedby selecting lightbulb link 610A (FIG. 6A) include links to task 620A,620B and 620C. By contrast, if a meeting is not planned, the linksdisplayed by selecting lightbulb link 610B (FIG. 6B) include only linksto tasks 620B and 620C, but not 620A, since task 620A is not applicableunder that business rule. Business rules, of course, may be more complexthat the simple business rule illustrated in FIGS. 6A and 6B. Inparticular, business rules may use multiple inputs of different semantictypes to determine which links should be provided.

As an example of the concepts discussed above, a Recommend a Product toa Customer activity 800 is shown in FIG. 8. Activity 800 provides thesalesperson with the optimal product recommendations for a particularcustomer, maximizing the chances of completing a sale. Activity 800takes an input 810 of semantic type Customer. A Product Recommendationnugget 820 is the Start nugget for this activity. Nugget 820 alsorequires an input of semantic type Customer. To accomplish this, thecustomer property of the activity input is wired to the customerproperty input of Product Recommendation nugget 820 using graphicaleditor 500. Nugget 820 retrieves targeted Product Recommendations from aReal Time Personalization Engine for the customer. ProductRecommendation nugget 820 is connected to three other nuggets 830, 840and 850. Add Product to New or Existing Opportunity nugget 830 is usedto add the product recommendation returned by Product Recommendationnugget 820 to a new or existing opportunity in computer program 200. Theend user has the option of selecting the product to add to anopportunity in the front end. Nugget 830 takes inputs of semantic typesCustomer and Product. The Customer input is wired from the activityinput and the Product input is wired from the output of ProductRecommendation nugget 820. To accomplish this a link is drawn fromProduct Recommendation nugget 820 to Add Product to New or ExistingOpportunity nugget 830 using graphical editor 500. Bookings andShippings for an Organization nugget 850 is a Composite nugget. Nugget850, in fact, contains two other nuggets: a Product Booked for anOrganization and a Product Shipped to an Organization nugget (notshown). Both of these nuggets output reports from an analytic service.As shown above, there is a link from Product Recommendation nugget 820to Offer Recommendation nugget 840. Offer Recommendation nugget 840returns Offer Recommendations from the Real Time Personalization Enginefor the Customer. Nugget 840 requires an input of semantic typeCustomer. So the activity input is wired to the input of nugget 840using graphical editor 500 by drawing a link from Product Recommendationnugget 820 to Offer Recommendation nugget 840. As shown in FIG. 8, linksare drawn from the Start nugget to each of the Next Steps in activity800.

Furthermore, a snapshot of an activity page or QuickView can be savedfor offline viewing. Pages are saved into a file system of computerprogram 200 and can be accessed offline from the application front-end.Offline access provides sales representatives access to criticalinformation when on the road without network access.

QuickViews present users with broad snapshots of relevant pieces ofinformation at a glance, in a portal-like view. QuickViews aggregaterelevant account information from multiple sources and provide a singleview of the customer. QuickViews can be created and edited usinggraphical editor 500. End users can also customize QuickViews in thefront end.

QuickViews are collections of several nuggets from any number ofinformation sources displayed on a single page, as shown in FIG. 9. FIG.9 shows a portion of an exemplary Customer Intelligence QuickView 900that includes several nugget displays 910 n. QuickViews enable users toquickly prepare for customer meetings and become informed about thecurrent status of an account. For example, a salesperson could access aCustomer QuickView 345 prior to a meeting that afternoon with theaccount. QuickView 345 provides in one convenient place up-to-dateinformation about the customer's most recent purchases and purchasingpatterns, quarterly financial results, open service requests, and arecommended up-sell product to pursue.

Building QuickView 345 s consists of assembling nuggets 335 related to aparticular topic (for example, Sales Effectiveness or What's Hot) andadding the resulting composite nugget to an activity.

End users can customize a QuickView by configuring the layout of thenuggets that comprise the QuickView. In some embodiments, for example,both display options and page contents of a QuickView 345 can becustomized.

In some embodiments, for example, display options pertain to the nuggetscontained in the QuickView and involve specifying end-user settings suchas the maximum number of rows to show in a table, or the output type fora report (such as chart, table, or both). Page Contents specify how thenuggets are positioned on QuickView 345. For example, this involvesdetermining whether a nugget should be in a single column or twocolumns, which nugget should be added or dropped from the QuickView, andwhich nuggets should go on the right or left side of the QuickView.

In some embodiments, the user interface of computer program 200 isdisplayed on a PDA 140 n. FIG. 10 shows an exemplary windows 1000generated by an embodiment of computer program 200 (FIG. 2) executed byPDA 140A (FIG. 1). As discussed above, the invention is not limited toclient computers and PDAs, rather devices other than client computersand PDAs can be used in accordance to the principles of the invention.

FIG. 11 illustrates a user interface 1100 for specifying semantic typeinformation in a window displayed by computer program 200, in accordanceto some embodiments of the invention. User interface 1100 provides twotypes of facilities to associate semantic type information withinformation extracted by an IC 320: column lookups 1110 n and keytranslations 1120. Column lookups 1110 n allow a user to define asemantic type for a report generated by an IC 320. Key translations1120, by contrast, allow a user to specify a semantic type to beassociated with a specific column of an information source 210 n. IC320, therefore, use column lookup 1110 n to recognize the semantic typeof data retrieved during execution and key translations 1120 to requestdata of a given semantic type from an information source 210 n.

Embodiments described above illustrate, but do not limit the invention.For example, the invention is not limited to any particularhardware/software combination. In fact, other hardware/software could beused in place of the ones described herein, in accordance to theprinciples of the invention. Other embodiments and varieties are withinthe scope of the invention, as defined by the following claims.

1. A method of displaying heterogeneous information, comprising:executing an application program to process one or more activities, eachactivity comprising information nuggets comprised of informationcomponents written in Java language and use Java classes to implementbusiness logic, and next step links, each information nugget extractedfrom one or more heterogeneous information sources, each next step linkassociated with one or more information nuggets; selecting one of theactivities; displaying at least one information nugget of the selectedactivity in a first region of a graphical user interface; and displayingat least one next step link associated with the displayed informationnugget in a second region of the graphical user interface, wherein theinformation, wherein the information components consist of three Javaclasses, wherein the three Java classes are i) an input parameter class,which encapsulates information available to the information componentswhen executing, ii) a Java class, comprised of the informationcomponents containing code to connect and to get information from a datasource and iii) an output parameter class, which encapsulatesinformation that is available for display and to pass to other nuggetsor an activity after the information component has executed.
 2. Themethod of claim 1, wherein the information component retrieves real timeinformation via the Internet.
 3. The method of claim 1, wherein theinformation nugget and the associated next step link are displayedsimultaneously wherein the displayed information nugget comprises: oneor more semantic types.
 4. The method of claim 3, further comprising:identifying one or more of the activities having at least one of thesemantic types of the displayed information nugget.
 5. The method ofclaim 4, further comprising: displaying a link to one or more of theidentified activities in the first region of the graphical userinterface.
 6. The method of claim 1, wherein the displayed informationnugget is a composite of two or more information sub-nuggets, anddisplaying the composite information nugget comprises: displaying thetwo or more information sub-nuggets.
 7. The method of claim 1, whereinthe heterogeneous information sources comprise: one or more databaseshaving different database management systems.
 8. The method of claim 1,further comprising: allowing a user to navigate through the selectedactivity with the graphical user interface by selecting an initial stepand, upon completion of the initial step, selecting one of the displayednext step links to perform a next step of the selected activity.
 9. Themethod of claim 1, further comprising: providing a graphical editor thatallows an user to add, delete or modify activities.
 10. The method ofclaim 1, further comprising: displaying a link to a quick viewassociated with the selected activity.
 11. The method of claim 10,further comprising: selecting the link to the quick view; and displayingthe quick view; wherein the displayed quick view comprises a pluralityof information nuggets extracted from one or more of the heterogeneousinformation sources, the plurality of information nuggets associatedwith a common subject.
 12. An apparatus for displaying heterogeneousinformation, comprising: means for executing an application program toprocess one or more activities, each activity comprising informationnuggets comprised of information components written in Java language anduse Java classes to implement business logic, and next step links, eachinformation nugget extracted from one or more heterogeneous informationsources, each next step link associated with one or more informationnuggets; means for selecting one of the activities; means for displayingat least one information nugget of the selected activity in a firstregion of a graphical user interface; and means for displaying at leastone next step link associated with the displayed information nugget in asecond region of the graphical user interface, wherein the informationcomponents consist of three Java classes, wherein the three Java classesare i) an input parameter class, which encapsulates informationavailable to the information components when executing, ii) a Javaclass, comprised of the information components containing code toconnect and to get information from a data source and iii) an outputparameter class, which encapsulates information that is available fordisplay and to pass to other nuggets or an activity after theinformation component has executed.
 13. The apparatus of claim 12,wherein the information component retrieves real time information viathe Internet.
 14. The apparatus of claim 12, wherein the informationnugget and the associated next step link are displayed simultaneouslywherein the displayed information nugget comprises: one or more semantictypes.
 15. The method of claim 14, further comprising: means foridentifying one or more of the activities having at least one of thesemantic types of the displayed information nugget.
 16. The method ofclaim 15, further comprising: means for displaying a link to one or moreof the identified activities in the first region of the graphical userinterface.
 17. The apparatus of claim 12, wherein the displayedinformation nugget is a composite of two or more informationsub-nuggets, and said means for displaying the composite informationnugget comprises: means for displaying the two or more informationsub-nuggets.
 18. The apparatus of claim 12, wherein the heterogeneousinformation sources comprise: one or more databases having differentdatabase management systems.
 19. The apparatus of claim 12, wherein thegraphical user interface comprises means for allowing a user to navigatethrough the selected activity comprising: means for selecting an initialstep; and means for selecting one of the displayed next step links toperform a next step of the selected activity.
 20. The apparatus of claim12, further comprising: means for providing a graphical editor thatallows an user to add, delete or modify activities.
 21. The apparatus ofclaim 12, further comprising: means for displaying a link to a quickview associated with the selected activity.
 22. The apparatus of claim21, further comprising: means for selecting the link to the quick view;and means for displaying the quick view; wherein the displayed quickview comprises a plurality of information nuggets extracted from one ormore of the heterogeneous information sources, the plurality ofinformation nuggets associated with a common subject.
 23. An article ofmanufacture comprising: a computer readable medium storing a computerprogram which, when executed by a processing system, causes the systemto perform a method of displaying heterogeneous information, thecomputer program comprising: instructions for executing an applicationprogram to process one or more activities, each activity comprisinginformation nuggets comprised of information components written in Javalanguage and use Java classes to implement business logic, and next steplinks, each information nugget extracted from one or more heterogeneousinformation sources, each next step link associated with one or moreinformation nuggets; instructions for selecting one of the activities;instructions for displaying at least one information nugget of theselected activity in a first region of a graphical user interface; andinstructions for displaying at least one next step link associated withthe displayed information nugget in a second region of the graphicaluser interface, wherein the information components consist of three Javaclasses, wherein the three Java classes are i) an input parameter class,which encapsulates information available to the information componentswhen executing, ii) a Java class, comprised of the informationcomponents containing code to connect and to get information from a datasource and iii) an output parameter class, which encapsulatesinformation that is available for display and to pass to other nuggetsor an activity after the information component has executed.
 24. Thearticle of claim 23, wherein the information component retrieves realtime information via the Internet.
 25. The article of claim 23, whereinthe information nugget and the associated next step link are displayedsimultaneously wherein the displayed information nugget comprises: oneor more semantic types.
 26. The article of claim 25, further comprising:instructions for identifying one or more of the activities having atleast one of the semantic types of the displayed information nugget. 27.The article of claim 26, further comprising: instructions for displayinga link to one or more of the identified activities in the first regionof the graphical user interface.
 28. The article of claim 23, whereinthe displayed information nugget is a composite of two or moreinformation sub-nuggets, and said instructions for displaying thecomposite information nugget comprise: instructions for displaying thetwo or more information sub-nuggets.
 29. The article of claim 23,wherein the heterogeneous information sources comprise: one or moredatabases having different database management systems.
 30. The articleof claim 23, further comprising: instructions for allowing a user tonavigate through the selected activity by selecting an initial step; andinstructions for selecting one of the displayed next step links toperform a next step of the selected activity upon completion of theinitial step.
 31. The article of claim 23, further comprising:instructions for providing a graphical editor that allows an user toadd, delete or modify activities.
 32. The article of claim 23, furthercomprising: instructions for displaying a link to a quick viewassociated with the selected activity.
 33. The article of claim 32,further comprising: instructions for selecting the link to the quickview; and instructions for displaying the quick view; wherein thedisplayed quick view comprises a plurality of information nuggetsextracted from one or more of the heterogeneous information sources, theplurality of information nuggets associated with a common subject.